// 提供前端操作cookie（增删查）API

class Cookie{

  //设置自定义过期时间cookie
  static setCookie(name,value,time='30d'){
    var msec = getMsec(time); //获取毫秒
    var exp = new Date();
    exp.setTime(exp.getTime() + msec*1);
    value = JSON.stringify(value)
    document.cookie = name + "="+ value + ";expires=" + exp.toGMTString() + ";path=/";
  }

  //将字符串时间转换为毫秒,1秒=1000毫秒
  static getMsec(str){
    var timeNum=str.substring(0,str.length-1)*1; //时间数量
    var timeStr=str.substring(str.length-1,str.length); //时间单位后缀，如h表示小时
    if (timeStr=="s"){ //20s表示20秒
      return timeNum*1000;}
    else if (timeStr=="h"){ //12h表示12小时
      return timeNum*60*60*1000;}
    else if (timeStr=="d"){
      return timeNum*24*60*60*1000;} //30d表示30天
  }

  //读取cookies
  static getCookie(name){
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); //正则匹配
    if(arr=document.cookie.match(reg)){
      return JSON.parse(unescape(arr[2]));
    }
    else{
      return null;
    }
  }

  //删除cookies
  static delCookie(name){
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null){
      document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/"
    }
  }
}

module.exports = Cookie


// Cookie.setCookie('name','zs')
// Cookie.getCookie('zs')
